// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import VueResource from 'vue-resource'
import store from './store'
import axios from 'axios'
import api from '@/api.js'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.prototype.$axios = axios    //全局注册，使用方法为:this.$axios
Vue.prototype.$api = api       //全局注册，使用方法为:this.$api

Vue.use(ElementUI);
Vue.use(VueResource)
Vue.config.productionTip = false


// 自动给同一个vue项目的所有请求添加请求头
//设置axios请求头加入token
// axios.interceptors.request.use(request => {
//     console.log("request.baseURL  " +request.baseURL);
//     //如果登录路由不加token
//     // if (request.push === 'course/login') {
//     //   console.log("登录中...")
//     // } else {
//     if (localStorage.get('token')) {
//       //在请求头加入token，名字要和后端接收请求头的token名字一样
//       // request.headers.token=localStorage.getItem('token');
//       request.headers.token=localStorage.get('token')
//     }
//     // }
//     return request;
//   },
//   error => {
//     return Promise.reject(error);
//   });
//
// //=============================
// //响应回来token是否过期
// axios.interceptors.response.use(response => {
//     // console.log("response use ...")
//     let code = response.data.code;
//     // console.log('响应回来：'+code)
//     if(code != 200 && code != 403){
//       // 显示警告的操作
//       ElementUI.Message({
//         message: response.data.msg,
//         type: 'warning'
//       });
//     }
//     if (response.data.code == 1000) {
//       //清除token
//       localStorage.removeItem('token');
//       router.push({name: 'Login'});
//     }
//     //和后端token失效返回码约定 403
//     if (response.data.code == 403) {
//       // 引用elementui message提示框
//       ElementUI.Message({
//         message: '身份已失效',
//         type: 'err'
//       });
//       //清除token
//       localStorage.removeItem('token');
//       //跳转
//       router.push({name: 'Login'});
//     } else {
//       return response
//     }
//   },
//   error => {
//     return Promise.reject(error);
//   })

new Vue({
  el: '#app',
  router,
  store,
  components: { App },
  template: '<App/>'
})
